home *** CD-ROM | disk | FTP | other *** search
-
- /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
- #include <cmpinclude.h>
- #include "seq.h"
- init_seq(start,size,data)char *start;int size;object data;
- { register object *base=vs_top;register object *sup=base+VM2;vs_check;
- Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
- base[0]= VV[0];
- (void)simple_symlispcall_no_event(VV[16],base+0,1);
- MF(VV[17],L2,start,size,data);
- MF(VV[18],L3,start,size,data);
- MF(VV[19],L4,start,size,data);
- MF(VV[20],L5,start,size,data);
- MF(VV[21],L6,start,size,data);
- MF(VV[22],L7,start,size,data);
- MF(VV[23],L8,start,size,data);
- vs_top=vs_base=base;
- }
- /* function definition for MAKE-SEQUENCE */
-
- static L2()
- { register object *base=vs_base;
- register object *sup=base+VM3;
- vs_reserve(VM3);
- if(vs_top-vs_base<2) too_few_arguments();
- parse_key(vs_base+2,FALSE,FALSE,1,VV[2]);
- vs_top=sup;
- base[4]= Cnil;
- base[5]= Cnil;
- if(!(base[0]==VV[1])){
- goto T6;}
- if((base[3])==Cnil){
- goto T9;}
- base[6]= base[1];
- base[7]= VV[2];
- base[8]= base[2];
- vs_top=(vs_base=base+6)+3;
- Lmake_list();
- return;
- T9:;
- base[6]= base[1];
- vs_top=(vs_base=base+6)+1;
- Lmake_list();
- return;
- T6:;
- if(base[0]==VV[3]){
- goto T15;}
- if(!(base[0]==VV[4])){
- goto T16;}
- T15:;
- base[4]= VV[5];
- goto T4;
- T16:;
- if(base[0]==VV[6]){
- goto T20;}
- if(!(base[0]==VV[7])){
- goto T21;}
- T20:;
- base[4]= VV[8];
- goto T4;
- T21:;
- if(base[0]==VV[9]){
- goto T25;}
- if(!(base[0]==VV[10])){
- goto T26;}
- T25:;
- base[4]= Ct;
- goto T4;
- T26:;
- base[6]= base[0];
- base[0]= simple_symlispcall_no_event(VV[24],base+6,1);
- if(!(car(base[0])==VV[1])){
- goto T33;}
- if((base[3])==Cnil){
- goto T37;}
- base[6]= base[1];
- base[7]= VV[2];
- base[8]= base[2];
- vs_top=(vs_base=base+6)+3;
- Lmake_list();
- return;
- T37:;
- base[6]= base[1];
- vs_top=(vs_base=base+6)+1;
- Lmake_list();
- return;
- T33:;
- if(car(base[0])==VV[11]){
- goto T43;}
- if(car(base[0])==VV[12]){
- goto T43;}
- base[6]= VV[13];
- base[7]= base[0];
- vs_top=(vs_base=base+6)+2;
- Lerror();
- vs_top=sup;
- T43:;
- base[6]= cadr(base[0]);
- if(base[6]==Cnil)goto T50;
- base[4]= base[6];
- goto T4;
- T50:;
- base[4]= Ct;
- T4:;
- base[6]= base[4];
- base[7]= base[1];
- base[8]= Cnil;
- base[9]= Cnil;
- base[10]= Cnil;
- base[11]= Cnil;
- base[12]= Cnil;
- vs_top=(vs_base=base+6)+7;
- siLmake_vector();
- vs_top=sup;
- base[5]= vs_base[0];
- if((base[3])==Cnil){
- goto T61;}
- {int V1;
- int V2;
- V1= 0;
- V2= fix(base[1]);
- T67:;
- if(!((V1)>=(V2))){
- goto T68;}
- goto T61;
- T68:;
- (void)(elt_set(base[5],V1,base[2]));
- V1= (V1)+1;
- goto T67;}
- T61:;
- vs_top=(vs_base=base+5)+1;
- return;
- }
- /* function definition for CONCATENATE */
-
- static L3()
- { register object *base=vs_base;
- register object *sup=base+VM4;
- vs_reserve(VM4);
- if(vs_top-vs_base<1) too_few_arguments();
- vs_base=vs_base+1;
- vs_top[0]=Cnil;
- {object *p=vs_top;
- for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
- vs_top=sup;
- {int V3;
- base[4]= base[0];
- {object V4;
- {object V5;
- object V6= base[1];
- if(endp(V6)){
- V4= Cnil;
- goto T79;}
- base[6]=V5=MMcons(Cnil,Cnil);
- T80:;
- base[7]= (V6->c.c_car);
- vs_top=(vs_base=base+7)+1;
- Llength();
- vs_top=sup;
- (V5->c.c_car)= vs_base[0];
- if(endp(V6=MMcdr(V6))){
- V4= base[6];
- goto T79;}
- V5=MMcdr(V5)=MMcons(Cnil,Cnil);
- goto T80;}
- T79:;
- vs_top=base+6;
- while(!endp(V4))
- {vs_push(car(V4));V4=cdr(V4);}
- vs_base=base+6;}
- Lplus();
- vs_top=sup;
- base[5]= vs_base[0];
- vs_top=(vs_base=base+4)+2;
- L2();
- vs_top=sup;
- base[2]= vs_base[0];
- V3= 0;
- base[3]= base[1];
- T85:;
- if((base[3])!=Cnil){
- goto T86;}
- vs_top=(vs_base=base+2)+1;
- return;
- T86:;
- {int V7;
- int V8;
- V7= 0;
- V8= length(car(base[3]));
- T94:;
- if(!((V7)>=(V8))){
- goto T95;}
- goto T90;
- T95:;
- base[4]= elt(car(base[3]),V7);
- (void)(elt_set(base[2],V3,base[4]));
- V3= (V3)+(1);
- V7= (V7)+1;
- goto T94;}
- T90:;
- base[3]= cdr(base[3]);
- goto T85;}
- }
- /* function definition for MAP */
-
- static L4()
- { register object *base=vs_base;
- register object *sup=base+VM5;
- vs_reserve(VM5);
- if(vs_top-vs_base<3) too_few_arguments();
- vs_base=vs_base+3;
- vs_top[0]=Cnil;
- {object *p=vs_top;
- for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
- vs_top=sup;
- base[3]= make_cons(base[2],base[3]);
- {object V9;
- {object V10;
- object V11= base[3];
- if(endp(V11)){
- V9= Cnil;
- goto T111;}
- base[5]=V10=MMcons(Cnil,Cnil);
- T112:;
- base[6]= (V11->c.c_car);
- vs_top=(vs_base=base+6)+1;
- Llength();
- vs_top=sup;
- (V10->c.c_car)= vs_base[0];
- if(endp(V11=MMcdr(V11))){
- V9= base[5];
- goto T111;}
- V10=MMcdr(V10)=MMcons(Cnil,Cnil);
- goto T112;}
- T111:;
- vs_top=base+5;
- while(!endp(V9))
- {vs_push(car(V9));V9=cdr(V9);}
- vs_base=base+5;}
- Lmin();
- vs_top=sup;
- base[4]= vs_base[0];
- if((base[0])!=Cnil){
- goto T116;}
- {int V12;
- int V13;
- V12= 0;
- V13= fix(base[4]);
- T121:;
- if(!((V12)>=(V13))){
- goto T122;}
- base[5]= Cnil;
- vs_top=(vs_base=base+5)+1;
- return;
- T122:;
- base[5]= base[1];
- {object V14;
- {object V15;
- object V16= base[3];
- if(endp(V16)){
- V14= Cnil;
- goto T128;}
- base[6]=V15=MMcons(Cnil,Cnil);
- T129:;
- (V15->c.c_car)= elt((V16->c.c_car),V12);
- if(endp(V16=MMcdr(V16))){
- V14= base[6];
- goto T128;}
- V15=MMcdr(V15)=MMcons(Cnil,Cnil);
- goto T129;}
- T128:;
- vs_top=base+6;
- while(!endp(V14))
- {vs_push(car(V14));V14=cdr(V14);}
- vs_base=base+6;}
- super_funcall_no_event(base[5]);
- vs_top=sup;
- V12= (V12)+1;
- goto T121;}
- T116:;
- base[6]= base[0];
- base[7]= base[4];
- vs_top=(vs_base=base+6)+2;
- L2();
- vs_top=sup;
- base[5]= vs_base[0];
- {int V17;
- int V18;
- V17= 0;
- V18= fix(base[4]);
- T140:;
- if(!((V17)>=(V18))){
- goto T141;}
- vs_top=(vs_base=base+5)+1;
- return;
- T141:;
- base[7]= base[1];
- {object V19;
- {object V20;
- object V21= base[3];
- if(endp(V21)){
- V19= Cnil;
- goto T148;}
- base[8]=V20=MMcons(Cnil,Cnil);
- T149:;
- (V20->c.c_car)= elt((V21->c.c_car),V17);
- if(endp(V21=MMcdr(V21))){
- V19= base[8];
- goto T148;}
- V20=MMcdr(V20)=MMcons(Cnil,Cnil);
- goto T149;}
- T148:;
- vs_top=base+8;
- while(!endp(V19))
- {vs_push(car(V19));V19=cdr(V19);}
- vs_base=base+8;}
- super_funcall_no_event(base[7]);
- vs_top=sup;
- base[6]= vs_base[0];
- (void)(elt_set(base[5],V17,base[6]));
- V17= (V17)+1;
- goto T140;}
- }
- /* function definition for SOME */
-
- static L5()
- { register object *base=vs_base;
- register object *sup=base+VM6;
- vs_reserve(VM6);
- if(vs_top-vs_base<2) too_few_arguments();
- vs_base=vs_base+2;
- vs_top[0]=Cnil;
- {object *p=vs_top;
- for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
- vs_top=sup;
- base[2]= make_cons(base[1],base[2]);
- {int V22;
- int V23;
- V22= 0;
- {object V24;
- {object V25;
- object V26= base[2];
- if(endp(V26)){
- V24= Cnil;
- goto T158;}
- base[3]=V25=MMcons(Cnil,Cnil);
- T159:;
- base[4]= (V26->c.c_car);
- vs_top=(vs_base=base+4)+1;
- Llength();
- vs_top=sup;
- (V25->c.c_car)= vs_base[0];
- if(endp(V26=MMcdr(V26))){
- V24= base[3];
- goto T158;}
- V25=MMcdr(V25)=MMcons(Cnil,Cnil);
- goto T159;}
- T158:;
- vs_top=base+3;
- while(!endp(V24))
- {vs_push(car(V24));V24=cdr(V24);}
- vs_base=base+3;}
- Lmin();
- vs_top=sup;
- V23= fix(vs_base[0]);
- T163:;
- if(!((V22)>=(V23))){
- goto T164;}
- base[3]= Cnil;
- vs_top=(vs_base=base+3)+1;
- return;
- T164:;
- base[4]= base[0];
- {object V27;
- {object V28;
- object V29= base[2];
- if(endp(V29)){
- V27= Cnil;
- goto T171;}
- base[5]=V28=MMcons(Cnil,Cnil);
- T172:;
- (V28->c.c_car)= elt((V29->c.c_car),V22);
- if(endp(V29=MMcdr(V29))){
- V27= base[5];
- goto T171;}
- V28=MMcdr(V28)=MMcons(Cnil,Cnil);
- goto T172;}
- T171:;
- vs_top=base+5;
- while(!endp(V27))
- {vs_push(car(V27));V27=cdr(V27);}
- vs_base=base+5;}
- super_funcall_no_event(base[4]);
- vs_top=sup;
- base[3]= vs_base[0];
- if((base[3])==Cnil){
- goto T168;}
- vs_top=(vs_base=base+3)+1;
- return;
- T168:;
- V22= (V22)+1;
- goto T163;}
- }
- /* function definition for EVERY */
-
- static L6()
- { register object *base=vs_base;
- register object *sup=base+VM7;
- vs_reserve(VM7);
- if(vs_top-vs_base<2) too_few_arguments();
- vs_base=vs_base+2;
- vs_top[0]=Cnil;
- {object *p=vs_top;
- for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
- vs_top=sup;
- base[2]= make_cons(base[1],base[2]);
- {int V30;
- int V31;
- V30= 0;
- {object V32;
- {object V33;
- object V34= base[2];
- if(endp(V34)){
- V32= Cnil;
- goto T183;}
- base[3]=V33=MMcons(Cnil,Cnil);
- T184:;
- base[4]= (V34->c.c_car);
- vs_top=(vs_base=base+4)+1;
- Llength();
- vs_top=sup;
- (V33->c.c_car)= vs_base[0];
- if(endp(V34=MMcdr(V34))){
- V32= base[3];
- goto T183;}
- V33=MMcdr(V33)=MMcons(Cnil,Cnil);
- goto T184;}
- T183:;
- vs_top=base+3;
- while(!endp(V32))
- {vs_push(car(V32));V32=cdr(V32);}
- vs_base=base+3;}
- Lmin();
- vs_top=sup;
- V31= fix(vs_base[0]);
- T188:;
- if(!((V30)>=(V31))){
- goto T189;}
- base[3]= Ct;
- vs_top=(vs_base=base+3)+1;
- return;
- T189:;
- base[3]= base[0];
- {object V35;
- {object V36;
- object V37= base[2];
- if(endp(V37)){
- V35= Cnil;
- goto T197;}
- base[4]=V36=MMcons(Cnil,Cnil);
- T198:;
- (V36->c.c_car)= elt((V37->c.c_car),V30);
- if(endp(V37=MMcdr(V37))){
- V35= base[4];
- goto T197;}
- V36=MMcdr(V36)=MMcons(Cnil,Cnil);
- goto T198;}
- T197:;
- vs_top=base+4;
- while(!endp(V35))
- {vs_push(car(V35));V35=cdr(V35);}
- vs_base=base+4;}
- super_funcall_no_event(base[3]);
- vs_top=sup;
- if((vs_base[0])!=Cnil){
- goto T193;}
- base[3]= Cnil;
- vs_top=(vs_base=base+3)+1;
- return;
- T193:;
- V30= (V30)+1;
- goto T188;}
- }
- /* function definition for NOTANY */
-
- static L7()
- { register object *base=vs_base;
- register object *sup=base+VM8;
- vs_reserve(VM8);
- if(vs_top-vs_base<2) too_few_arguments();
- vs_base=vs_base+2;
- vs_top[0]=Cnil;
- {object *p=vs_top;
- for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
- vs_top=sup;
- base[4]= base[0];
- base[5]= base[1];
- {object V38;
- V38= base[2];
- vs_top=base+6;
- while(!endp(V38))
- {vs_push(car(V38));V38=cdr(V38);}
- vs_base=base+4;}
- L5();
- vs_top=sup;
- base[3]= vs_base[0];
- base[4]= ((base[3])==Cnil?Ct:Cnil);
- vs_top=(vs_base=base+4)+1;
- return;
- }
- /* function definition for NOTEVERY */
-
- static L8()
- { register object *base=vs_base;
- register object *sup=base+VM9;
- vs_reserve(VM9);
- if(vs_top-vs_base<2) too_few_arguments();
- vs_base=vs_base+2;
- vs_top[0]=Cnil;
- {object *p=vs_top;
- for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
- vs_top=sup;
- base[4]= base[0];
- base[5]= base[1];
- {object V39;
- V39= base[2];
- vs_top=base+6;
- while(!endp(V39))
- {vs_push(car(V39));V39=cdr(V39);}
- vs_base=base+4;}
- L6();
- vs_top=sup;
- base[3]= vs_base[0];
- base[4]= ((base[3])==Cnil?Ct:Cnil);
- vs_top=(vs_base=base+4)+1;
- return;
- }
-